package cn.patient.pp.module.fiveInOne.service;

/**
 * @author liqingsong
 * @version 1.0
 * Create by 2025/6/11
 */

import cn.patient.pp.framework.common.pojo.PageResult;
import cn.patient.pp.module.fiveInOne.controller.admin.vo.KeyPersonProtectionImportExcelVO;
import cn.patient.pp.module.fiveInOne.controller.admin.vo.KeyPersonProtectionPageReqVO;
import cn.patient.pp.module.fiveInOne.controller.admin.vo.KeyPersonProtectionRespVO;
import cn.patient.pp.module.fiveInOne.controller.admin.vo.KeyPersonProtectionSaveReqVO;
import cn.patient.pp.module.fiveInOne.dal.dataobject.KeyPersonProtectionDO;
import cn.patient.pp.module.patients.controller.admin.vo.importExecl.ImportRespVO;

import javax.validation.Valid;
import java.util.List;

/**
 * 重点人员包保信息 Service 接口
 *
 * @author 驻马店超管
 */
public interface KeyPersonProtectionService {

    /**
     * 创建重点人员包保信息
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createKeyPersonProtection(@Valid KeyPersonProtectionSaveReqVO createReqVO);

    /**
     * 更新重点人员包保信息
     *
     * @param updateReqVO 更新信息
     */
    void updateKeyPersonProtection(@Valid KeyPersonProtectionSaveReqVO updateReqVO);

    /**
     * 删除重点人员包保信息
     *
     * @param id 编号
     */
    void deleteKeyPersonProtection(Integer id);

    /**
     * 获得重点人员包保信息
     *
     * @param id 编号
     * @return 重点人员包保信息
     */
    KeyPersonProtectionRespVO getKeyPersonProtection(Integer id);

    /**
     * 获得重点人员包保信息分页
     *
     * @param pageReqVO 分页查询
     * @return 重点人员包保信息分页
     */
    PageResult<KeyPersonProtectionDO> getKeyPersonProtectionPage(KeyPersonProtectionPageReqVO pageReqVO);

    // 五帮一导入
    ImportRespVO importKeyPersonProtectionList(List<KeyPersonProtectionImportExcelVO> list, Boolean updateSupport) throws InterruptedException;

}